From: YAMAMOTO Mitsuharu Date: Fri, 23 Feb 2007 08:25:58 +0000 (+0000) Subject: (mac_menu_show): Call unbind_to early. Use variable X-Git-Tag: archive/raspbian/1%29.2+1-2+rpi1^2~5^2~30214 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https:/www.github.com/%22bookmarks:///%22http:/www.example.com/cgi/%22https:/www.github.com/%22bookmarks:/?a=commitdiff_plain;h=356ce658c89711b8c5086c97af8385929bd124da;p=emacs.git (mac_menu_show): Call unbind_to early. Use variable `menu_item_selection' as in W32 version. [TARGET_API_MAC_CARBON] (mac_handle_dialog_event): Add explicit braces to avoid ambiguous `else'. --- diff --git a/src/macmenu.c b/src/macmenu.c index 3ea09412650..82322515c31 100644 --- a/src/macmenu.c +++ b/src/macmenu.c @@ -2012,9 +2012,8 @@ mac_menu_show (f, x, y, for_click, keymaps, title, error) char **error; { int i; - UInt32 refcon; int menu_item_choice; - int menu_item_selection; + UInt32 menu_item_selection; MenuHandle menu; Point pos; widget_value *wv, *save_wv = 0, *first_wv = 0, *prev_wv = 0; @@ -2229,7 +2228,6 @@ mac_menu_show (f, x, y, for_click, keymaps, title, error) LocalToGlobal (&pos); /* No selection has been chosen yet. */ - menu_item_choice = 0; menu_item_selection = 0; record_unwind_protect (pop_down_menu, make_save_value (f, 0)); @@ -2240,20 +2238,18 @@ mac_menu_show (f, x, y, for_click, keymaps, title, error) /* Display the menu. */ menu_item_choice = PopUpMenuSelect (menu, pos.v, pos.h, 0); - menu_item_selection = LoWord (menu_item_choice); /* Get the refcon to find the correct item */ - if (menu_item_selection) + if (menu_item_choice) { MenuHandle sel_menu = GetMenuHandle (HiWord (menu_item_choice)); - if (sel_menu) { - GetMenuItemRefCon (sel_menu, menu_item_selection, &refcon); - } + + if (sel_menu) + GetMenuItemRefCon (sel_menu, LoWord (menu_item_choice), + &menu_item_selection); } - else if (! for_click) - /* Make "Cancel" equivalent to C-g unless this menu was popped up by - a mouse press. */ - Fsignal (Qquit, Qnil); + + unbind_to (specpdl_count, Qnil); /* Find the selected item, and its pane, to return the proper value. */ @@ -2290,7 +2286,7 @@ mac_menu_show (f, x, y, for_click, keymaps, title, error) { entry = XVECTOR (menu_items)->contents[i + MENU_ITEMS_ITEM_VALUE]; - if ((int) (EMACS_INT) refcon == i) + if (menu_item_selection == i) { if (keymaps != 0) { @@ -2313,8 +2309,6 @@ mac_menu_show (f, x, y, for_click, keymaps, title, error) /* Make "Cancel" equivalent to C-g. */ Fsignal (Qquit, Qnil); - unbind_to (specpdl_count, Qnil); - return Qnil; } @@ -2386,10 +2380,12 @@ mac_handle_dialog_event (next_handler, event, data) typeUInt32, NULL, sizeof (UInt32), NULL, &key_code); if (err == noErr) - if (mac_quit_char_key_p (modifiers, key_code)) - err = QuitAppModalLoopForWindow (window); - else - err = eventNotHandledErr; + { + if (mac_quit_char_key_p (modifiers, key_code)) + err = QuitAppModalLoopForWindow (window); + else + err = eventNotHandledErr; + } } break; }